export default {
    // 设置页面主题
    setPageTheme(isDark) {
        // #ifdef H5
        this.setH5Theme(isDark);
        // #endif
        
        // #ifdef APP-PLUS
        this.setAppTheme(isDark);
        // #endif
        
        // #ifdef MP
        this.setMpTheme(isDark);
        // #endif
    },
    
    // H5环境主题设置
    setH5Theme(isDark) {
        if (typeof document !== 'undefined') {
            const body = document.body;
            const html = document.documentElement;
            
            if (isDark) {
                body.classList.add('dark');
                html.classList.add('dark');
            } else {
                body.classList.remove('dark');
                html.classList.remove('dark');
            }
        }
    },
    
    // APP环境主题设置
    setAppTheme(isDark) {
        // APP环境下，通过webview直接设置样式，避免操作可能不存在的document对象
        try {
            // #ifdef APP-PLUS
            // 使用plus API来设置webview样式
            const currentWebview = plus.webview.currentWebview();
            if (currentWebview) {
                currentWebview.setStyle({
                    background: isDark ? '#1c1c1c' : '#f6f6f6'
                });
            }
            // #endif
            
            // 延迟执行，确保DOM已加载
            setTimeout(() => {
                if (typeof document !== 'undefined') {
                    // 通过动态插入style标签来控制page样式
                    const styleId = 'app-theme-style';
                    
                    if (document.head) {
                        // 移除旧的样式
                        const existingStyle = document.head.querySelector(`#${styleId}`);
                        if (existingStyle) {
                            document.head.removeChild(existingStyle);
                        }
                        
                        // 添加新的样式
                        const style = document.createElement('style');
                        style.id = styleId;
                        style.innerHTML = `
                            page {
                                background-color: ${isDark ? '#1c1c1c' : '#f6f6f6'} !important;
                            }
                            body {
                                background-color: ${isDark ? '#1c1c1c' : '#f6f6f6'} !important;
                            }
                            uni-page-body, uni-page-wrapper {
                                background-color: ${isDark ? '#1c1c1c' : '#f6f6f6'} !important;
                            }
                        `;
                        document.head.appendChild(style);
                    }
                    
                    // 安全地设置页面元素样式类
                    if (document.querySelectorAll) {
                        const pageElements = document.querySelectorAll('page');
                        pageElements.forEach(page => {
                            if (isDark) {
                                page.classList.add('dark');
                            } else {
                                page.classList.remove('dark');
                            }
                        });
                    }
                    
                    // 安全地设置body样式类
                    if (document.body) {
                        if (isDark) {
                            document.body.classList.add('dark');
                        } else {
                            document.body.classList.remove('dark');
                        }
                    }
                }
            }, 100);
        } catch (e) {
            console.log('APP环境设置主题失败:', e);
        }
    },
    
    // 小程序环境主题设置
    setMpTheme(isDark) {
        if (typeof document !== 'undefined' && document.head) {
            const styleId = 'mp-theme-style';
            
            // 移除旧的样式
            const existingStyle = document.head.querySelector(`#${styleId}`);
            if (existingStyle) {
                document.head.removeChild(existingStyle);
            }
            
            // 添加新的样式
            const style = document.createElement('style');
            style.id = styleId;
            style.innerHTML = `
                page {
                    background-color: ${isDark ? '#1c1c1c' : '#f6f6f6'} !important;
                }
            `;
            document.head.appendChild(style);
        }
    }
} 